package br.com.sistema.negocio.facade.permissao;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.hibernate.criterion.Order;

import br.com.framework.client.negocio.ExcecaoDadosDuplicados;
import br.com.framework.client.permissao.entidade.Tela;
import br.com.framework.client.permissao.negocio.FacadeGeneric;
import br.com.framework.client.persistencia.DAOFactory;
import br.com.sistema.persistencia.dao.permissao.TelaDAO;

@Stateless
public class FacadeTela extends FacadeGeneric<Tela, TelaDAO> implements IFacadeTela {

	@PersistenceContext
	private EntityManager em;

	@Override
	public EntityManager getEm() {
		return em;
	}

	@Override
	public Order getOrderBuscarTodos() {
		return Order.asc("nome");
	}

	public String getPath(String nome) {
		return DAOFactory.getIntance().getDAO(em, TelaDAO.class).getPath(nome);
	}

	@Override
	public void entidadeCadastrada(Tela objeto) throws ExcecaoDadosDuplicados {
		Integer idBanco = DAOFactory.getIntance().getDAO(em, TelaDAO.class).getIdTelaCadastradaPorNome(objeto.getNome());
		if (idBanco != null && !idBanco.equals(objeto.getId())) {
			throw new ExcecaoDadosDuplicados("err.duplicidade.dados", objeto.getNome());
		}
	}

}
